@echo off
chcp 65001 >nul
echo 🚀 开始测试点击量统计系统...
echo ==================================

REM 设置测试参数
set SHORT_CODE=abc123
set BASE_URL=http://localhost:8080
set API_BASE=%BASE_URL%/api/statistics

echo 📊 测试短链接: %SHORT_CODE%
echo 🌐 服务地址: %BASE_URL%
echo.

REM 1. 查看初始统计状态
echo 1️⃣ 查看初始统计状态...
curl -s "%API_BASE%/overview/%SHORT_CODE%"
echo.
echo.

REM 2. 模拟多次访问
echo 2️⃣ 模拟多次访问...
for /l %%i in (1,1,10) do (
    echo    访问 #%%i
    curl -s "%BASE_URL%/%SHORT_CODE%" >nul
    timeout /t 1 /nobreak >nul
)
echo.

REM 3. 查看访问后的统计
echo 3️⃣ 查看访问后的统计...
curl -s "%API_BASE%/overview/%SHORT_CODE%"
echo.
echo.

REM 4. 查看总访问量
echo 4️⃣ 查看总访问量...
curl -s "%API_BASE%/total/%SHORT_CODE%"
echo.
echo.

REM 5. 查看今日访问量
echo 5️⃣ 查看今日访问量...
curl -s "%API_BASE%/daily/%SHORT_CODE%"
echo.
echo.

REM 6. 并发测试
echo 6️⃣ 并发测试 (10个并发请求)...
for /l %%i in (1,1,10) do (
    start /b curl -s "%BASE_URL%/%SHORT_CODE%" >nul
)
timeout /t 2 /nobreak >nul
echo    并发访问完成
echo.

REM 7. 查看并发后的统计
echo 7️⃣ 查看并发后的统计...
curl -s "%API_BASE%/overview/%SHORT_CODE%"
echo.
echo.

REM 8. 测试Redis性能
echo 8️⃣ 测试Redis性能 (50次快速访问)...
set start_time=%time%
for /l %%i in (1,1,50) do (
    curl -s "%BASE_URL%/%SHORT_CODE%" >nul
)
set end_time=%time%
echo    50次访问完成
echo    开始时间: %start_time%
echo    结束时间: %end_time%
echo.

REM 9. 最终统计
echo 9️⃣ 最终统计结果...
curl -s "%API_BASE%/overview/%SHORT_CODE%"
echo.
echo.

echo ✅ 测试完成！
echo ==================================
echo 📈 性能特点:
echo    - 内存缓存: 即时响应 (~0.01ms)
echo    - Redis缓存: 快速持久化 (~0.1ms)
echo    - 异步落库: 后台处理，不影响响应
echo.
echo 🔧 监控建议:
echo    - 查看Redis内存使用: redis-cli info memory
echo    - 查看数据库连接: 检查连接池状态
echo    - 查看异步任务: 检查日志中的@Async执行情况
echo.
pause
